import json

from setting import DIR_NAME


# 修改报告的窗口标题
def rename_window_title(window_title):
    # 读取html文件
    with open(DIR_NAME +r'/report/html/index.html', 'r+', encoding='utf-8') as f:
        # 先保存html的内容
        lines = f.readlines()
        # 定义下标变量，方便后边的数据更替
        i = -1
        for line in lines:
            i = i + 1
            # 寻找html页面的title标签
            if '<title>' in line:
                # 定义原始标题变量
                old_title = ''
                # html里的title标签之前有4个空格，所以从下标为11处截取
                for s in line[11:]:
                    # 若字符为<则退出循环
                    if s == '<':
                        break
                    # 原始标题-拨云见日
                    old_title += s
                # 正式替换标题
                lines[i] = line.replace(old_title, window_title)
                # 修改标题后的html内容
                new_lines = lines
                print('修改后的html内容:', new_lines)
        # 指针放在文件开始的地方
        f.seek(0)
        # 清空原来的html文件内容
        f.truncate()
        # 将修改标题后的内容重新写入html文件
        for new_line in new_lines:
            print(new_line)
            f.write(new_line)


# 修改报告的Overview标题
def rename_overview_title(overview_title):
    with open(DIR_NAME +r'/report/html/widgets/summary.json', 'r+', encoding='utf-8') as f:
        # 读取文件
        params = json.load(f)
        # 修改新标题
        params['reportName'] = overview_title
        # 修改后的json数据
        new_params = params
    with open(DIR_NAME +r'/report/html/widgets/summary.json', 'w+', encoding='utf-8') as f:
        """
        目的: 覆盖原始json文件
        参数概要: ensure_ascii=False,设置后写入json的中文以明文方式显示,否则会以ascall码显示
        """
        json.dump(new_params, f, ensure_ascii=False)


# if __name__ == '__main__':
#     # 修改报告的窗口标题
#     rename_window_title('UI自动化初级测试')
#     # 修改报告的Overview标题
#     rename_overview_title('测试训练系统-UI测试报告')